1. Field of the Invention
The invention relates generally to graphical display of data, and in particular, to displaying a graph view of multiply connected objects.
2. Background Information
Visualization of and interaction with data helps users quickly understand the types of data available and their interrelationships. Often, sets of data are presented as lists, or tables with columns, depicting specific attributes of each instance of data. Analyzing and understanding the nature and state of units of data, and appreciating any subtle relationships and connections therebetween, can be difficult and time consuming. For example, in a screen display, large sets of textual data cannot fit on a single display without the user having to scroll or page, whereby a user cannot retain a view of all the data at once.
A conventional solution is to draw a graph of objects with lines indicating relationships between pairs of objects, and some arbitrary shape representing each instance of an object. Typically, the scale of the graph can be controlled, and the data arranged in such a way that all data or a selection of data can be viewed in a single screen. An example of this is a unified modeling language (UML) editor, which allows users to examine a set of object classes and the relationships between them. The user can move around the graph, zoom into items of interest and view details of specific classes (e.g., zoom into objects in the graph and identify relationships that exist between classes).
In a complex graph, where there a multiple objects with connections to many other objects, the end result can be a tangled graph, which is difficult to make sense of Graph drawing techniques and algorithms are well known and attempt to reduce this visual complexity by arranging the objects in an aesthetically pleasing layout, such as a hierarchy, or by evenly distributing the objects within the extent of the display. Another technique to improve clarity of a graph is to move objects around such that the number of crossings of connection lines is minimized. These require redrawing the graph at a server as a bitmap, transmitting the bitmap to a client via communication link, and displaying the bitmap at a client. However, this consumes communication bandwidth and is slow.
In a client rendering environment, the number of objects to draw is typically a limiting factor, where either the time to send the graph data is unacceptable, or the graph drawing capabilities of the client are insufficient for the number of objects to show. The number of objects depends on the data set being considered, the number of connections between objects, and the depth of the graph that is being requested. For example, in a tree view (a directed hierarchical graph), an origin object may connect to 5 objects at the first level, then each of those connects to 5 objects each at the second level, and the number of objects grows exponentially. Computing a layout for a large graph is time consuming and may exceed the capabilities of the client.